//
// Created by dddgzc on 2025/2/7.
//

#ifndef PARTICLE_H
#define PARTICLE_H
#include "Atlas.h"
#include "Camera.h"
#include "Vector2.h"


// 粒子系统
class Particle {
public:
    Particle() = default;
    Particle(const Vector2& position, Atlas* atlas, int lifespan);
    ~Particle() = default;

    void setAtlas(Atlas* atlas);
    void setLifespan(int lifespan);
    void setPosition(const Vector2& position);
    bool checkValid() const;
    void onUpdate(int delta);
    void onDraw(const Camera& camera);
private:
    int timer = 0; // 计时器
    int lifespan = 0; // 单帧粒子动画持续时间
    int idxFrame = 0; // 当前帧索引
    Vector2 position; // 坐标
    bool valid = true; // 粒子对象是否有效
    Atlas* atlas = nullptr; // 粒子动画使用的图集
};



#endif //PARTICLE_H
